Micron Document
██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝


🬧 The NomadNet Encyclopedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

🔍 Search

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

Zlib
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbgzlib (/ˈziːlIb/ o "mwcazeta-lib", /ˈziːt@,lIb/)cite-ref-1[1]cite-ref-2[2] è una mweglibreria software utilizzata per la mwewcompressione dei dati. zlib è stato scritto da Jean-loup Gailly e Mark Adler ed è un'mwfaastrazione dell'algoritmo di compressione mwfqDEFLATE utilizzato nel loro programma di compressione file mwfggzip. zlib è anche un componente cruciale di molte piattaforme software, tra cui mwfwLinux, mwgamacOS e mwgqiOS. È stata utilizzata anche in console di gioco come mwggPlayStation 4, mwgwPlayStation 3, mwhaWii U, mwhqWii, mwhgXbox One e mwhwXbox 360.

La prima versione pubblica di zlib, 0.9, è stata rilasciata il 1 maggio 1995 ed era originariamente destinata all'uso con la libreria di immagini libpng. È un mwigsoftware libero, distribuito sotto la mwiwlicenza zlib.

Contents

Note

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Caratteristiche

Incapsulamento

I dati compressi zlib sono in genere scritti con un gzip o un wrapper zlib. Il wrapper incapsula i dati grezzi mwkaDEFLATE aggiungendo un'intestazione e una sezione di coda. Ciò fornisce l'identificazione del flusso e il rilevamento degli errori che non sono forniti dai dati grezzi DEFLATE.

L'intestazione gzip, utilizzata nell'onnipresente formato di file mwkggzip, è più grande dell'intestazione zlib, poiché memorizza un nome file e altre informazioni sul file system.

Algoritmo

zlib supporta solo un algoritmo, chiamato DEFLATE, che utilizza una combinazione di una variazione di mwlqLZ77 (Lempel-Ziv 1977) e la mwlgcodifica di Huffman.cite-ref-3[3] Questo algoritmo fornisce una buona compressione su un'ampia varietà di dati con un utilizzo minimo delle risorse di sistema. Questo è anche l'algoritmo utilizzato nel formato di archivio Zip. L'intestazione tiene conto di altri algoritmi, ma nessuno è attualmente implementato.

Uso delle risorse

zlib fornisce funzioni per il controllo del processore e dell'uso della memoria. Può essere fornito un valore del livello di compressione che scambia la velocità con la compressione. Esistono anche funzioni per la conservazione della memoria, utili in ambienti con memoria limitata, come alcuni sistemi embedded.

Strategia

La compressione può essere ottimizzata per tipi specifici di dati. Se si utilizza la libreria per comprimere sempre tipi specifici di dati, l'utilizzo di una strategia specifica può migliorare la compressione e le prestazioni. Ad esempio, se i dati contengono lunghe lunghezze di byte ripetuti, la strategia di mwnwcodifica run-length (RLE) può dare buoni risultati a una velocità maggiore. Per i dati generali, è preferibile la strategia predefinita.

Gestione degli errori

Gli errori nei dati compressi possono essere rilevati e ignorati se necessario. Inoltre, se i punti "full-flush" vengono scritti nel flusso compresso, i dati corrotti possono essere ignorati e la decompressione si risincronizzerà al punto di flush successivo, anche se non viene fornito alcun recupero di errore dei dati corrotti. I punti full-flush sono utili per grandi flussi di dati su canali inaffidabili, dove una certa perdita di dati non è importante, come in alcune applicazioni multimediali. Tuttavia, la creazione di molti punti di livellamento può influire sulla velocità e sulla quantità (rapporto) di compressione.

Lunghezza dei dati

Non c'è limite alla lunghezza dei dati che possono essere compressi o decompressi. Ripetute chiamate alla libreria consentono di gestire un numero illimitato di blocchi di dati. Alcuni codici ausiliari (contatori) possono soffrire di mwpaoverflow per lunghi flussi di dati, ma ciò non influisce sulla compressione o decompressione effettiva.

Quando si comprime un lungo flusso di dati (o infinito), è consigliabile scrivere punti di full-flush a intervalli regolari.

Applicazioni

Oggi, zlib è una sorta di mwqastandard mwqqmwqgde facto, al punto che zlib e DEFLATE sono spesso usati in modo intercambiabile nei documenti standard, con migliaia di applicazioni che si affidano ad esso per la compressione, direttamente o indirettamente.cite-ref-4[4] Questi includono:

• Il mwsqkernel Linux, dove zlib viene utilizzato per implementare protocolli di rete compressi, mwsgfile system compressi e per decomprimere l'immagine del kernel al momento dell'avvio.
• mwtaGNU Binutils
• libpng, l'mwtwimplementazione di riferimento per il formato immagine mwuaPNG, che specifica DEFLATE come compressione del flusso per i suoi dati mwuqbitmap.
• libwww, un'API per applicazioni web come i mwuwbrowser Web.
• mwvqApache HTTP Server, che utilizza zlib per implementare la compressione in HTTP/1.1.
• Allo stesso modo, la libreria mwvwcURL utilizza zlib per decomprimere le risposte HTTP.cite-ref-5[5]
• Il client e server mwxqOpenSSH, che si basano su zlib per eseguire la compressione opzionale offerta dal protocollo mwxgSecure Shell.
• Le librerie di sicurezza mwyaOpenSSL e mwyqGnuTLS, che possono facoltativamente utilizzare zlib per comprimere le connessioni mwygTLS.
• La libreria multimediale mwzaFFmpeg, che utilizza zlib per leggere e scrivere le parti compresse DEFLATE dei mwzqformati di streaming, come mwzgMatroska.
• Il sincronizzatore di file remoto mwaarsync, che utilizza zlib per implementare la compressione del protocollo opzionale.
• I mwaggestori di pacchetti mwawdpkg e mwbaRPM, che utilizzano zlib per decomprimere i file dai pacchetti software compressi.
• I sistemi di mwbgcontrollo della versione mwbwApache Subversion e mwcaCVS, che utilizzano zlib per comprimere il traffico da e verso i repository remoti.
• Il formato di archiviazione dei dati orientato alla colonna Apache ORC utilizza ZLib come metodo di compressione predefinito.cite-ref-6[6]
• Il sistema di mweacontrollo versione mweqGit utilizza zlib per archiviare il contenuto dei suoi oggetti dati (blob, alberi, commit e tag).
• L'mwewRDBMS mwfaPostgreSQL utilizza zlib con formato di dump personalizzato (pg_dump -Fc) per i backup del database.
• La mwfgclasse System.IO.Compression.DeflateStream del mwfw.NET Framework 2.0 e versioni successivecite-ref-7[7]
• L'utilità "deflate" in TORNADO come parte del sistema operativo mwhqVxWorks realizzato da Wind River Systems utilizza zlib per comprimere le immagini ROM di avvio.
• L'mwiaRDBMS mwiqMySQL utilizza ZLib LZ77 per la compressione nelle tabelle mwigInnoDBcite-ref-8[8]

zlib è utilizzato anche in molti dispositivi embedded, come Apple mwkaiPhone e Sony mwkqPlayStation 3, perché il codice è portatile, con licenza libera e ha un footprint di memoria relativamente ridotto.

Note

cite-note-11. mwma(mwmqmwmgEN) Michael Stutz, mwmwmwnaThe Linux Cookbook: Tips and Techniques for Everyday Use, 2ªmwnq ed., 2004, mwngISBNmwnw 978-1-59327-031-5.
cite-note-22. mwpaLoki Software, Inc e John R. Hall, mwpqmwpgProgramming Linux Games, 2001, p.mwpw 68, mwqaISBNmwqq 978-1-886411-49-4.
cite-note-33. [rfc:1951 rfc1951]
cite-note-44. mwsq(mwsgmwswEN) mwtamwtqzlib Home Site, su mwtgzlib.net. mwtwURL consultato il 25 gennaio 2023.
cite-note-55. mwuw(mwvamwvqEN) mwvgmwvwWhy does cURL use zlib?, su mwwamwwqStack Overflow.
cite-note-66. mwxq(mwxgmwxwEN) Carter Shanklin, mwyamwyqORCFile in HDP 2: Better Compression, Better Performance, su mwygCloudera Blog, 6 settembre 2013. mwywURL consultato il 25 gennaio 2023.
cite-note-77. mwzw(mw0amw0qEN) dotnet-bot, mw0gmw0wDeflateStream Class (System.IO.Compression), su mw1alearn.microsoft.com. mw1qURL consultato il 25 gennaio 2023.
cite-note-88. mw2q(mw2gmw2wEN) mw3amw3qHow Compression Works for InnoDB Tables, su mw3gdev.mysql.com.

Voci correlate

• mw4gDEFLATE
• mw5agzip
• mw6gZlib license

Altri progetti

Altri progetti

• Wikimedia Commons

• Wikimedia Commons contiene immagini o altri file su zlib

Collegamenti esterni

• (EN) Sito ufficiale, su zlib.net.
• citerefsourceforge(EN) Zlib, su SourceForge.
• Zlib / Zlib (altra versione), su packages.debian.org.
• Repository sorgenti di Zlib, su github.com.

Standard

• mw9q(EN) RFC 1950, su datatracker.ietf.org, Internet Engineering Task Force. — ZLIB Compressed Data Format
• mw9w(EN) RFC 1951, su datatracker.ietf.org, Internet Engineering Task Force. — DEFLATE Compressed Data Format
• mw-q(EN) RFC 1952, su datatracker.ietf.org, Internet Engineering Task Force. — GZIP file format